데이터베이스 백업
NOTE
mysqldump 명령 또는 DB 툴(DBeaver)을 이용한 데이터베이스 백업 방법. 원문을 AI가 검토·보강함(사실 확인 권장).
📌 개념
명령어(mysqldump)
mysqldump -u [계정명] -p [패스워드] [데이터베이스명] > [저장할 파일경로 + 파일이름]NOTE
원문에는
mysqldumps로 적혀 있으나 실제 명령은mysqldump이다.
mysqldump 방식의 트레이드오프
mysqldump는 데이터를 SQL INSERT 문(또는 CSV) 형태의 텍스트로 뽑아내는 논리적(logical) 백업이다. 파일이 사람이 읽을 수 있는 SQL이라 MySQL 버전이 달라도 이식성이 좋고 특정 테이블만 골라 복원하기 쉽지만, 원본 데이터 전체를 SQL로 재작성하기 때문에 데이터가 크면 덤프/복원 모두 느리고 산출물 용량도 크다. 반면xtrabackup같은 물리적(physical) 백업은 데이터 파일을 그대로 복사해 훨씬 빠르지만 이식성이 낮고 대개 상용 도구가 필요하다. 또한 InnoDB 테이블을 덤프할 때--single-transaction옵션을 주지 않으면 일관된 스냅샷을 보장하기 위해 테이블에 잠금(lock)이 걸려 백업 중 쓰기 작업이 막힐 수 있다.--single-transaction을 사용하면 MVCC 스냅샷을 이용해 잠금 없이 일관된 덤프를 뜰 수 있지만, InnoDB 전용이며 트랜잭션이 열려 있는 동안 다른 DDL(스키마 변경)이 섞이면 여전히 문제가 될 수 있다. 데이터 규모가 커질수록 매번 전체를 덤프하는 풀 백업만으로는 백업 시간과 저장 공간 부담이 커지므로, 변경분만 기록하는 binlog 기반 증분 백업을 병행하는 것이 일반적이다(풀 백업 주기 사이의 binlog를 보관해 특정 시점 복구(PITR)를 가능하게 하는 방식).
DB 툴 이용
- (DBeaver) 데이터베이스 우클릭 → 도구 → Dump databases
- 덤프하고 싶은 테이블 선택
- output 파일 위치 지정 후 Start
관련 문서
- (데이터베이스/SQL) DB 복구방법 — mysqldump로 백업한 덤프 파일을
mysql <명령으로 복구하는 짝을 이루는 노트